Embodiments generally relate to the execution of time critical code sections. More particularly, embodiments relate to architectures that achieve deterministic execution of time critical code sections in multi-core systems.
Modern computing systems may include CPU (central processing unit) architectures that have multiple processor cores capable of running different threads. Indeed, each core in a multi-core processor may potentially run threads from a different operating system (OS), depending upon the circumstances. Certain types of operating systems, however, may have tighter code execution deadlines than others, which can present implementation challenges when the cores compete for shared resources. For example, a real time OS (RTOS) might be required to respond and complete tasks before relatively tight (e.g., “hard”) deadlines, whereas a general purpose OS (GPOS) may permit more unpredictability and variation in execution times. Accordingly, engineering a multi-core processor to run both an RTOS and a GPOS may only be possible under conventional approaches if real time code execution deadlines are relatively loose (e.g., measured in milliseconds). Many industrial real time tasks, however, can have deadlines that are substantially tighter (e.g., measured in tens or hundreds of microseconds).